#pragma once
#include <iostream>
#include <string>

using namespace std;
class MultiMedia
{
protected:
	string type;
	string title;
	string author;
	string genre;
	int year;

public:
	MultiMedia(void);
	MultiMedia( string type, string title, string author, string genre, int year );
	~MultiMedia(void);


	string GetType( ) { return this->type; }
	void SetType( string type ) { this->type = type; }

	string GetTitle( ) { return this->title; }
	void SetTitle( string title ) { this->title = title; }

	string GetAuthor( ) { return this->author; }
	void SetAuthor( string author ) { this->author = author; }

	string GetGenre( ) { return this->genre; }
	void SetGenre( string genre ) { this->genre = genre; }

	int GetYear( ) { return this->year; }
	void SetYear( int year ) { this->year = year; }

	virtual void Print( ostream &out );
	static bool sort_pred( MultiMedia one, MultiMedia other );

	friend ostream& operator<<( ostream &, const MultiMedia & );
	friend istream& operator>>( istream &, MultiMedia & );

	friend bool operator==( const MultiMedia &, const MultiMedia & );
	friend bool operator!=( const MultiMedia &, const MultiMedia & );

	friend bool operator<( const MultiMedia&, const MultiMedia& );
	//friend bool operator<( const MultiMedia *one, const MultiMedia *other );
};

